<template>
  <el-form size="large" class="login-content-form">
    <el-form-item class="login-animation1">
      <el-input
        text
        :placeholder="$t('message.mobile.placeholder1')"
        v-model="state.ruleForm.userName"
        clearable
        autocomplete="off"
      >
        <template #prefix>
          <i class="iconfont icon-dianhua el-input__icon"></i>
        </template>
      </el-input>
    </el-form-item>
    <el-form-item class="login-animation2">
      <el-col :span="15">
        <el-input
          text
          maxlength="4"
          :placeholder="$t('message.mobile.placeholder2')"
          v-model="state.ruleForm.code"
          clearable
          autocomplete="off"
        >
          <template #prefix>
            <el-icon class="el-input__icon">
              <ele-Position />
            </el-icon>
          </template>
        </el-input>
      </el-col>
      <el-col :span="1"></el-col>
      <el-col :span="8">
        <el-button v-waves class="login-content-code" @click="onSendCode" :disabled="!!time">
          <el-countdown v-if="time" format="mm:ss" :value="time" @finish="onFinish" />
          <span v-else>{{ $t('message.mobile.codeText') }}</span>
        </el-button>
      </el-col>
    </el-form-item>
    <el-form-item class="login-animation3">
      <el-button round type="primary" v-waves class="login-content-submit">
        <span>{{ $t('message.mobile.btnText') }}</span>
      </el-button>
    </el-form-item>
    <div class="font12 mt30 login-animation4 login-msg">{{ $t('message.mobile.msgText') }}</div>
  </el-form>
</template>

<script setup lang="ts" name="loginMobile">
import { reactive, ref } from 'vue'

// 验证码重发倒计时
const time = ref(0)

/**
 * 用户手机
 */
const state = reactive({
  ruleForm: {
    userName: '13900000001',
    code: '123456'
  }
})

/**
 * 发验证码
 */
const onSendCode = () => {
  time.value = Date.now() + 1000 * 60
}

/**
 * 验证码重发倒计时结束
 */
const onFinish = () => {
  time.value = 0
}
</script>

<style scoped lang="scss">
.login-content-form {
  margin-top: 20px;
  @for $i from 1 through 4 {
    .login-animation#{$i} {
      opacity: 0;
      animation-name: error-num;
      animation-duration: 0.5s;
      animation-fill-mode: forwards;
      animation-delay: calc($i/10) + s;
    }
  }

  .login-content-code {
    width: 100%;
    padding: 0;
  }

  .login-content-submit {
    width: 100%;
    letter-spacing: 2px;
    font-weight: 300;
    margin-top: 15px;
  }

  .login-msg {
    color: var(--el-text-color-placeholder);
  }
}
</style>
